/**
 */
package wcomm_v1;

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>ROOT</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link wcomm_v1.ROOT#getImports <em>Imports</em>}</li>
 *   <li>{@link wcomm_v1.ROOT#getDatatypes <em>Datatypes</em>}</li>
 *   <li>{@link wcomm_v1.ROOT#getInterfaces <em>Interfaces</em>}</li>
 *   <li>{@link wcomm_v1.ROOT#getServices <em>Services</em>}</li>
 *   <li>{@link wcomm_v1.ROOT#getActivities <em>Activities</em>}</li>
 *   <li>{@link wcomm_v1.ROOT#getComponents <em>Components</em>}</li>
 * </ul>
 * </p>
 *
 * @see wcomm_v1.Wcomm_v1Package#getROOT()
 * @model annotation="gmf foo='bar'"
 *        annotation="gmf.diagram foo='bar'"
 * @generated
 */
public interface ROOT extends EObject
{
  /**
   * Returns the value of the '<em><b>Imports</b></em>' containment reference list.
   * The list contents are of type {@link wcomm_v1.Import}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Imports</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Imports</em>' containment reference list.
   * @see wcomm_v1.Wcomm_v1Package#getROOT_Imports()
   * @model containment="true"
   * @generated
   */
  EList<Import> getImports();

  /**
   * Returns the value of the '<em><b>Datatypes</b></em>' containment reference list.
   * The list contents are of type {@link wcomm_v1.Datatype}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Datatypes</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Datatypes</em>' containment reference list.
   * @see wcomm_v1.Wcomm_v1Package#getROOT_Datatypes()
   * @model containment="true"
   * @generated
   */
  EList<Datatype> getDatatypes();

  /**
   * Returns the value of the '<em><b>Interfaces</b></em>' containment reference list.
   * The list contents are of type {@link wcomm_v1.Interface}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Interfaces</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Interfaces</em>' containment reference list.
   * @see wcomm_v1.Wcomm_v1Package#getROOT_Interfaces()
   * @model containment="true"
   * @generated
   */
  EList<Interface> getInterfaces();

  /**
   * Returns the value of the '<em><b>Services</b></em>' containment reference list.
   * The list contents are of type {@link wcomm_v1.Service}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Services</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Services</em>' containment reference list.
   * @see wcomm_v1.Wcomm_v1Package#getROOT_Services()
   * @model containment="true"
   * @generated
   */
  EList<Service> getServices();

  /**
   * Returns the value of the '<em><b>Activities</b></em>' containment reference list.
   * The list contents are of type {@link wcomm_v1.ActivityDefinition}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Activities</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Activities</em>' containment reference list.
   * @see wcomm_v1.Wcomm_v1Package#getROOT_Activities()
   * @model containment="true"
   * @generated
   */
  EList<ActivityDefinition> getActivities();

  /**
   * Returns the value of the '<em><b>Components</b></em>' containment reference list.
   * The list contents are of type {@link wcomm_v1.ComponentDefinition}.
   * <!-- begin-user-doc -->
   * <p>
   * If the meaning of the '<em>Components</em>' containment reference list isn't clear,
   * there really should be more of a description here...
   * </p>
   * <!-- end-user-doc -->
   * @return the value of the '<em>Components</em>' containment reference list.
   * @see wcomm_v1.Wcomm_v1Package#getROOT_Components()
   * @model containment="true"
   * @generated
   */
  EList<ComponentDefinition> getComponents();

} // ROOT
